package hcn.protocol.brandnew.dengji.jianchayuyue;

import lombok.Data;
import javax.xml.bind.annotation.*;
import java.util.List;
import hcn.protocol.brandnew.BaseRequest;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import ctd.util.xml.jaxb.DateTimeAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;


/**
 * 检查预约项目查询-响应消息（成功） - ODS_02070007_SUC
 *
 * @author enjoyLife
 */
@Data
@XmlRootElement(name = "Data")
@XmlAccessorType(XmlAccessType.FIELD)
public class QueryAppointItemResponse {

    /**
     * 条目
     */
    @XmlElementWrapper(name = "Items")
    @XmlElement(name = "Item")
    private List<Item> items;

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class Item {

        /**
         * 患者类型
         */
        @XmlElement(name = "PatientType")
        private String patientType;
        /**
         * 患者姓名
         */
        @XmlElement(name = "Name")
        private String name;
        /**
         * 患者年龄
         */
        @XmlElement(name = "Age")
        private String age;
        /**
         * 患者性别
         */
        @XmlElement(name = "Sex")
        private String sex;
        /**
         * 病人号码
         */
        @XmlElement(name = "PatientNumber")
        private String patientNumber;
        /**
         * 检查申请单号
         */
        @XmlElement(name = "RequestId")
        private String requestId;
        /**
         * 检查项目代码
         */
        @XmlElement(name = "ItemCode")
        private String itemCode;
        /**
         * 检查项目名称
         */
        @XmlElement(name = "ItemName")
        private String itemName;
        /**
         * 预约状态码
         */
        @XmlElement(name = "AppointStatus")
        private String appointStatus;
        /**
         * 预约记录流水号
         */
        @XmlElement(name = "AppointsId")
        private String appointsId;
        /**
         * 预约标志
         */
        @XmlElement(name = "IsAppointment")
        private Boolean isAppointment;
        /**
         * 预约操作时间
         */
        @XmlElement(name = "OperatingDateTime")
        @XmlJavaTypeAdapter(DateTimeAdapter.class)
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date operatingDateTime;
        /**
         * 预约时间
         */
        @XmlElement(name = "AppointsDateTime")
        @XmlJavaTypeAdapter(DateTimeAdapter.class)
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date appointsDateTime;
        /**
         * 检查执行时间
         */
        @XmlElement(name = "ExamExecuteTime")
        @XmlJavaTypeAdapter(DateTimeAdapter.class)
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date examExecuteTime;
        /**
         * 检查时间段
         */
        @XmlElement(name = "TimePeriod")
        private String timePeriod;
        /**
         * 预约执行机构
         */
        @XmlElement(name = "AppointsOrganization")
        private String appointsOrganization;
        /**
         * 预约机构名称
         */
        @XmlElement(name = "AppointsOrganizationName")
        private String appointmentHospitalName;
        /**
         * 预约执行科室
         */
        @XmlElement(name = "AppointsDept")
        private String appointsDept;
        /**
         * 预约执行科室名称
         */
        @XmlElement(name = "AppointsDeptName")
        private String appointsDeptName;
        /**
         * 队列名称
         */
        @XmlElement(name = "AppointsQueueName")
        private String appointsQueueName;
        /**
         * 队列
         */
        @XmlElement(name = "AppointsQueue")
        private Long appointsQueue;
        /**
         * 预约顺序号
         */
        @XmlElement(name = "AppointsNo")
        private String appointsNo;
        /**
         * 检查地址
         */
        @XmlElement(name = "AppointAddress")
        private String appointAddress;
        /**
         * 紧急标志
         */
        @XmlElement(name = "isEmergency")
        private Boolean isEmergency;
        /**
         * 注意事项
         */
        @XmlElement(name = "AppointAttention")
        private String appointAttention;
        /**
         * 是否空腹
         */
        @XmlElement(name = "EmptyStomach")
        private Boolean emptyStomach;
        /**
         * 是否憋尿
         */
        @XmlElement(name = "HoldUrine")
        private Boolean holdUrine;
        /**
         * 计费状态
         */
        @XmlElement(name = "FeeStatus")
        private Boolean feeStatus;
        /**
         * 检查号
         */
        @XmlElement(name = "ExamCode")
        private String examCode;
        /**
         * 取报告地点
         */
        @XmlElement(name = "ReportAddress")
        private String reportAddress;
        /**
         * 打印次数
         */
        @XmlElement(name = "PrintCount")
        private String printCount;

        /**
         * 执行标志0.未执行/待执行1.已执行
         */
        @XmlElement(name = "ExecutionSign")
        private int executionSign;
        /**
         * 床号
         */
        @XmlElement(name = "BedNumber")
        private String bedNumber;
        /**
         * 住院科室名称
         */
        @XmlElement(name = "DepartmentName")
        private String departmentName;
    }

}
